// 1. 引入Node.js内置模块：http（创建服务）、fs（读取图片文件）
const http = require("http");
const fs = require("fs");
const path = require("path"); // 处理文件路径，避免跨系统路径问题

// 2. 读取图片文件并转为Base64
// 图片路径：用path.join拼接实验文件夹路径和图片名（__dirname是当前文件所在目录）
const imgPath = path.join(__dirname, "text.png"); 
// 同步读取图片（示例用同步更简单，避免异步回调），格式为二进制（'binary'）
const imgBuffer = fs.readFileSync(imgPath, "binary"); 
// 将二进制Buffer转为Base64
const imgBase64 = Buffer.from(imgBuffer, "binary").toString("base64");

// 3. 创建HTTP服务
const server = http.createServer((req, res) => {
  // 只处理根路径请求（localhost:8081/）
  if (req.url === "/" && req.method === "GET") {
    // 设置响应头：告诉浏览器返回的是HTML，编码为UTF-8
    res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
    
    // 响应HTML内容：img标签的src用Data URI（格式：data:图片格式;base64,Base64字符串）
    const html = `
      <!DOCTYPE html>
      <html>
        <head>
          <title>Buffer图片示例</title>
        </head>
        <body>
          <h1>深入浅出Node.js（示例图片）</h1>
          <!-- 关键：Data URI格式，替换image/jpeg为你的图片格式 -->
          <img src="data:image/jpeg;base64,${imgBase64}" alt="测试图片">
        </body>
      </html>
    `;
    
    // 发送HTML并结束响应
    res.end(html);
  } else {
    // 处理其他路径：返回404
    res.writeHead(404, { "Content-Type": "text/plain" });
    res.end("404 页面未找到");
  }
});

// 4. 启动服务，监听8081端口
server.listen(8081, () => {
  console.log("服务已启动，访问：http://localhost:8081");
});